home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO076.dsk / SHOW.TXT.bas < prev    next >
BASIC Source File  |  2012-02-16  |  7KB  |  183 lines

  1. 1  REM <CTRL-M><CTRL-M><CTRL-[><CTRL-O>[[[[[[[[[[[[[[[[[[[[[[[<CTRL-N><CTRL-X><CTRL-M> Text File Viewer<CTRL-M> by Paul Lieberman<CTRL-M><CTRL-[><CTRL-O>[[[[[[[[[[[[[[[[[[[[[[[[[<CTRL-N><CTRL-X><CTRL-M><CTRL-M>
  2. 10  GOTO 21: REM  <CTRL-O> Delete this line to make this a stand alone program <CTRL-N><CTRL-M>
  3. 11  HOME :D$ =  CHR$(4)
  4. 12  PRINT D$"PR#3": PRINT 
  5. 13  GOSUB 2200
  6. 21  POKE 32,6: POKE 33,70
  7. 22  POKE 34,3: POKE 35,21
  8. 23  HOME :D$ =  CHR$(4)
  9. 30  PRINT D$"BLOAD /RAM/COMMANDS/TYPE,TCMD,A$4000"
  10. 40  CALL 4 *4096
  11. 50  PRINT D$"-MOUSE"
  12. 90  DIM FI$(30),A$(30),T$(30)
  13. 100 S$ = "<CTRL-O> <CTRL-N>"
  14. 110 U$ = "<CTRL-[><CTRL-O>U<CTRL-N><CTRL-X>"
  15. 120 BS$ =  CHR$(8)
  16. 130 CR$ = "_"
  17. 145 C$ = "<CTRL-[><CTRL-O>C<CTRL-N><CTRL-X>"
  18. 150  VTAB 1: HTAB 20: PRINT "<CTRL-O>    Display Text File    <CTRL-N>";: VTAB 6: PRINT : HOME 
  19. 160  TEXT 
  20. 190  GOSUB 2300
  21. 200  ONERR  GOTO 3000
  22. 220  VTAB 6: PRINT "<CTRL-O>     Select Source Directory<CTRL-N>"
  23. 225  VTAB 18: PRINT "<CTRL-O> Arrows Select   <RETURN> Accepts<CTRL-N>"
  24. 230 A$(1) = "Slot and Drive"
  25. 240 A$(2) = "ProDOS Pathname"
  26. 250 UM = 10:F = 2
  27. 260  GOSUB 1500
  28. 265  HOME 
  29. 266  IF   NOT V  THEN  PRINT D$"-STARTUP"
  30. 270  IF V >1  THEN 490
  31. 380  VTAB 10: PRINT "Slot "U$" ";
  32. 390  GET A$:A =  VAL(A$): IF A <1  OR A >7  THEN 390
  33. 400  PRINT A:S = A
  34. 410  VTAB 12: PRINT "Drive "U$" ";
  35. 420  GET A$:A =  VAL(A$): IF A <1  OR A >2  THEN 420
  36. 430  PRINT A$:D = A
  37. 440  PRINT D$"PREFIX,S"S",D"D
  38. 450  PRINT D$"PREFIX"
  39. 460  INPUT PF$:PF$ =  LEFT$(PF$, LEN(PF$) -1)
  40. 470  PRINT D$"PREFIX/RAM"
  41. 480  GOTO 800
  42. 490  VTAB 8: PRINT "Source Directory "U$" /";:
  43. 500  GOSUB 2000
  44. 510 PF$ = "/" +L$
  45. 540  PRINT D$"VERIFY"PF$
  46. 800  POKE 32,6: POKE 33,70
  47. 810  POKE 34,3: POKE 35,21
  48. 820  HOME : PRINT 
  49. 880  PRINT D$"OPEN"PF$",TDIR"
  50. 890  PRINT D$"READ"PF$
  51. 900  PRINT "Reading Directory "PF$"....."
  52. 905 FI$(1) = ""
  53. 910  INPUT F$: INPUT F$: INPUT F$
  54. 920 J = 1
  55. 930  INPUT F$
  56. 940  IF F$ = ""  THEN 990
  57. 950 T$(J) =  MID$ (F$,18,3)
  58. 955  IF T$(J) < >"TXT"  AND T$(J) < >"DIR"  THEN 930
  59. 960 FI$(J) =  MID$ (F$,2,15)
  60. 970 J = J +1: GOTO 930
  61. 990  PRINT D$"CLOSE"
  62. 1000  IF FI$(1) = ""  THEN  PRINT "There are no text files in this directory": FOR D = 1 TO 1000: NEXT : HOME : GOTO 160
  63. 1020 J = J -1: FOR Z = 1 TO J
  64. 1030  IF  RIGHT$(FI$(Z),1) = " "  THEN FI$(Z) =  LEFT$(FI$(Z), LEN(FI$(Z)) -1): GOTO 1030
  65. 1040  NEXT 
  66. 1200  HOME 
  67. 1210  PRINT "<CTRL-O>     Select Text file or Sub-directory    <CTRL-N>"
  68. 1220  PRINT : PRINT "Directory: "PF$
  69. 1230  FOR Z = 1 TO J
  70. 1231 S = 15 - LEN(FI$(Z))
  71. 1232 SP$ = "": FOR X = 1 TO S:SP$ = SP$ +" ": NEXT 
  72. 1240 A$(Z) = FI$(Z) +SP$ +T$(Z)
  73. 1250  NEXT 
  74. 1260 F = J:LM = 4:UM = 6
  75. 1270  GOSUB 1500
  76. 1275  IF   NOT V  THEN  HOME : GOTO 160
  77. 1280 FI$ = PF$ +"/" +FI$(V)
  78. 1281  IF T$(V) = "DIR"  THEN PF$ = FI$: GOTO 820
  79. 1285  HOME 
  80. 1290 A$(1) = "Display file on screen"
  81. 1300 A$(2) = "Print file on printer"
  82. 1310 F = 2:
  83. 1320  GOSUB 1500
  84. 1330  IF   NOT V  THEN  HOME : GOTO 2200
  85. 1340  IF V = 2  THEN  PRINT : PRINT "Press a key when printer is ready": WAIT  -16384,128: POKE  -16368,0
  86. 1400  TEXT : HOME 
  87. 1405  VTAB 24: INVERSE : PRINT "Space bar stops scroll or single steps. Any key starts scroll. Ctrl-c to exit";: NORMAL 
  88. 1410  VTAB 20: PRINT 
  89. 1415  POKE 35,22
  90. 1420  HOME 
  91. 1421  IF V = 2  THEN  PRINT D$"PR#1"
  92. 1425  REM  Add a print statement here if you need printer codes
  93. 1430  PRINT D$"TYPE"FI$
  94. 1431  IF V = 2  THEN  PRINT D$"PR#0": GOTO 1450
  95. 1435  VTAB 24: INVERSE : PRINT "                              Press any Key                                   ";: NORMAL 
  96. 1440  CALL 24676
  97. 1441 S =  PEEK(24770): IF S >100  THEN 1445
  98. 1442 K =  PEEK(49152): IF K <128  THEN 1440
  99. 1445  POKE 49168,0: PRINT 
  100. 1450  GOSUB 2200: GOTO 1200
  101. 1500  REM  MENU SUB 
  102. 1530 V = 1:
  103. 1535  CALL 24676
  104. 1536 X1 =  PEEK(24766) +256 * PEEK(24767)
  105. 1537 Y1 =  PEEK(24768) +256 * PEEK(24769)
  106. 1540  FOR N = 1 TO F
  107. 1541  IF N <15  THEN  VTAB UM +N: HTAB LM +6
  108. 1542  IF N >14  THEN  VTAB UM +N -14: HTAB LM +36
  109. 1543  PRINT N" "A$(N)
  110. 1544  NEXT 
  111. 1550  INVERSE 
  112. 1551  IF V <15  THEN  VTAB UM +V: HTAB LM +6
  113. 1552  IF V >14  THEN  VTAB UM +V -14: HTAB LM +36
  114. 1553  PRINT V" "A$(V)
  115. 1554  NORMAL 
  116. 1560  CALL 24676
  117. 1561 X =  PEEK(24766) +256 * PEEK(24767)
  118. 1562 Y =  PEEK(24768) +256 * PEEK(24769)
  119. 1563 S =  PEEK(24770): IF S >100  THEN K = 141: GOTO 1580
  120. 1564  IF Y >Y1 +4  THEN K = 138:Y1 = Y: GOTO 1580
  121. 1565  IF Y <Y1 -4  THEN K = 139:Y1 = Y: GOTO 1580
  122. 1566  IF X >X1 +4  THEN K = 149:X1 = X: GOTO 1580
  123. 1567  IF X <X1 -4  THEN K = 136:X1 = X: GOTO 1580
  124. 1570 K =  PEEK( -16384): IF K <128  THEN 1560
  125. 1580  POKE  -16368,0
  126. 1581  IF V <15  THEN  VTAB UM +V: HTAB LM +6
  127. 1582  IF V >14  THEN  VTAB UM +V -14: HTAB LM +36
  128. 1583  PRINT V" "A$(V)
  129. 1584  IF K = 141  THEN 1630
  130. 1585  IF K = 155  THEN V = 0: GOTO 1630
  131. 1590  IF K >176  AND K <177 +F  THEN V = K -176: GOTO 1630
  132. 1600  IF K = 136  OR K = 139  THEN V = V -1: IF V = 0  THEN V = F
  133. 1610  IF K = 149  OR K = 138  THEN V = V +1: IF V = F +1  THEN V = 1
  134. 1620  GOTO 1550
  135. 1630  RETURN 
  136. 2000 L$ = ""
  137. 2010  PRINT CR$BS$;
  138. 2020 K =  PEEK(49152): IF K <128  THEN 2020
  139. 2030  POKE 49168,0
  140. 2040 K = K -128
  141. 2050  IF K = 8  OR K = 127  THEN 2150
  142. 2060  IF K = 13  THEN  PRINT " ": RETURN 
  143. 2070  IF K = 27  THEN  POP : GOTO 2140
  144. 2080  IF K <65  AND  LEN(L$) = 0  THEN 2020
  145. 2090  IF K <46  OR (K >57  AND K <65)  OR (K >90  AND K <97)  OR K >122  THEN 2020
  146. 2100  IF K >96  THEN K = K -32
  147. 2110 K$ =  CHR$(K): PRINT K$;
  148. 2120 L$ = L$ +K$
  149. 2130  GOTO 2010
  150. 2140  HOME : GOTO 160
  151. 2150  IF  LEN(L$) >0  THEN  PRINT " "BS$BS$;
  152. 2160  IF  LEN(L$) >1  THEN L$ =  LEFT$(L$, LEN(L$) -1): GOTO 2010
  153. 2170 L$ = "": GOTO 2010
  154. 2200  TEXT : HOME : PRINT 
  155. 2210  FOR H = 2 TO 78: HTAB H: PRINT C$;: NEXT 
  156. 2220  FOR V = 3 TO 22: VTAB V: HTAB 2: PRINT C$;C$;: HTAB 77: PRINT C$;C$;: NEXT 
  157. 2230  VTAB 23: FOR H = 2 TO 78: HTAB H: PRINT C$;: NEXT 
  158. 2231  POKE 32,6: POKE 33,70
  159. 2232  POKE 34,3: POKE 35,21
  160. 2240  RETURN 
  161. 2300  VTAB 6: FOR H = 20 TO 60: HTAB H: PRINT S$;: NEXT 
  162. 2310  VTAB 18: FOR H = 20 TO 60: HTAB H: PRINT S$;: NEXT 
  163. 2320  FOR V = 6 TO 18: VTAB V: HTAB 18: PRINT S$;S$;: HTAB 61: PRINT S$;S$;: NEXT 
  164. 2330  POKE 32,22: POKE 33,37
  165. 2340  POKE 34,6: POKE 35,17
  166. 2350  HOME 
  167. 2360  RETURN 
  168. 3000  POKE 216,0
  169. 3010 E =  PEEK(222)
  170. 3020  IF E = 255  THEN  TEXT : PRINT : PRINT "<CTRL-G>Control-C Break": END 
  171. 3030  IF E = 6  THEN E$ = "Path not found": GOTO 3060
  172. 3040  IF E = 3  THEN E$ = "No device connected": GOTO 3060
  173. 3050  GOTO 3100
  174. 3060  PRINT : PRINT "<CTRL-G>Error ====> "E$
  175. 3070  PRINT : PRINT "Press any Key to continue."
  176. 3080  WAIT  -16384,128: POKE  -16368,0
  177. 3090  HOME : GOTO 200
  178. 3100  PRINT "<CTRL-G>Uh-Oh we got error number "E
  179. 3110  PRINT "Please report this to the author."
  180. 3120  PRINT "Sorry....."
  181. 3130  PRINT : PRINT "Press any Key"
  182. 3140  WAIT  -16384,128: POKE  -16368,0
  183. 3150  PRINT D$"-STARTUP"